package com.atguigu.flink.sql.function;

import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.module.hive.HiveModule;

import java.util.Arrays;

/**
 * Created by Smexy on 2023/4/14
 *
 *  Module: flink解析sql所用的功能模块。
 */
public class Demo7_Modules
{
    public static void main(String[] args) {

        EnvironmentSettings environmentSettings = EnvironmentSettings.newInstance().inStreamingMode().build();

        TableEnvironment tableEnvironment = TableEnvironment.create(environmentSettings);

        //加载某个module
        tableEnvironment.loadModule("MyHive",new HiveModule());
        //调整模块顺序
        tableEnvironment.useModules("MyHive","core");

        //列出当前环境中使用的模块
        // core ： 是flink中的核心模块
        System.out.println(Arrays.toString(tableEnvironment.listModules()));

        /*
              找不到这个函数：
            No match found for function signature split(<CHARACTER>, <CHARACTER>)

            core模块中，压根就没有这个函数。
            引入hive的函数模块，来获取这个函数。

            在多个模块，有同名的函数，根据模块的引用顺序来解析。
         */
        tableEnvironment.sqlQuery("select split('a,b,c',',')").execute().print();


    }
}
